package com.xgpro.pc.studycentre.service;

import com.xgpro.domain.studycentre.entity.Course;
import com.xgpro.domain.studycentre.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.text.ParseException;
import java.util.List;

/**
 * @author tx
 * @version 1.0
 * @date 2019/10/14 20:24
 */
public interface CoursePCService {

    /**
     * 查询开课课程信息待审批
     *
     * @param coursePCFront
     * @return
     */
    public CoursePCResult qryCoursePCResult(CoursePCFront coursePCFront, List<Integer> roIds,Integer id);


    /**
     * 查询授课完毕课程
     *
     * @param coursePCFront
     * @param roIds
     * @return
     */
    public CoursePCResult qryOverCoursePCResult(CoursePCFront coursePCFront, List<Integer> roIds);


    /**
     * 审批授课完成课程
     * @param courseId
     * @param teaStatus
     * @return
     */
    public Integer  approvalOverCourse(Integer courseId, Integer teaStatus);


    /**
     * 查询开课程课
     * @param courseOpenPCFront
     * @return
     */
    public CourseOpenPCResult qryCourseOpenResult(CourseOpenPCFront courseOpenPCFront);


    /**
     * 根据id删除课程
     * @param id
     * @return
     */
    public Integer deleteCourseOpenById(Integer id);

    /**
     * 批量删除课程
     * @param ids
     * @return
     */
    public Integer deleteCourseOpenByIds(List<Integer> ids);

    /**
     * 新增微课程
     * @return
     */
    public Integer insertSmallCourse(SmallCourseFront smallCourseFront);

    /**
     * 修改微课程
     * @param smallCourseFront
     * @return
     */
    public Integer updateSmallCourse(SmallCourseFront smallCourseFront);

    /**
     * 新增外部课程
     * @param courseFront
     * @return
     * @throws ParseException
     */
    public Integer addOutCourse(CourseOutFront courseFront) throws ParseException;


    /**
     * 修改外部课程
     * @param courseOutFront
     * @return
     * @throws ParseException
     */
    public Integer updateOutCourse(CourseOutFront courseOutFront)throws ParseException;


    /**
     * 查看微课程
     * @param id
     * @return
     */
    public SmallCourseBack qrySmallCourseById(Integer id);

    /**
     * 查看课程详情
     * @param id
     * @return
     */
    public Course qryCourseById(Integer id);

    /**
     * 设置精品课程
     * @param id
     * @return
     */
    public Integer setGoodCourse(Integer id);

    /**
     * 下载课程评价
     * @param id
     * @return
     */
    public String downZipForCourse(Integer id);

    /**
     * 批量导入课程
     * @param multipartFile
     * @return
     */
    public String importCourse(MultipartFile multipartFile);
}
